package com.huajin.springcodetest.transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.huajin.springcodetest.context.ServerContext;
import com.huajin.springcodetest.dao.UserDao;
import com.huajin.springcodetest.po.UserPo;

@Service
public class UserService {
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private UserDao userDao;
	
	/**
	 * 
	 *
	 * @author hongwei.lian
	 * @date 2021年9月10日 上午9:25:50
	 */
	public void addPersonUser() {
		this.addUser();
	}
	
	/**
	 * 从容器直接获取代理对象
	 *
	 * @author hongwei.lian
	 * @date 2021年9月10日 上午9:25:47
	 */
	public void addCompanyUser() {
		ServerContext.getBean(UserService.class).addUser();
	}
	
	/**
	 * 从容器直接获取代理对象
	 *
	 * @author hongwei.lian
	 * @date 2021年9月10日 上午9:25:42
	 */
	public void addBaseUser() {
		userService.addUser();
	}

	@Transactional
	public int addUser() {
		UserPo userPo = new UserPo().setLoginName("连馨");
		userDao.insert(userPo);
		return userPo.getId();
	}
	
	public UserPo getByIdForUpdate(int id) {
		return userDao.getByIdForUpdate(id);
	}
	
	public UserPo getById(int id) {
		return userDao.getById(id);
	}

}
